"""
文字查询图片演示脚本
展示如何使用文字查询图片功能
"""

import sys
from pathlib import Path

# 添加项目根目录到 Python 路径
sys.path.append(str(Path(__file__).parent))

def demo_search_usage():
    """演示搜索功能的使用方法"""
    
    print("🎯 文字查询图片功能演示")
    print("=" * 60)
    
    print("\n📋 使用方法:")
    print("1. 命令行搜索:")
    print("   python bin/image_search.py --query '红色汽车' --top_k 5")
    print("   python bin/image_search.py -q '美丽的花朵' -k 3")
    
    print("\n2. 交互式搜索:")
    print("   python bin/interactive_search.py")
    
    print("\n3. 在代码中使用:")
    print("""
from bin.embedding_generator import EmbeddingGenerator

# 初始化搜索引擎
embedding_generator = EmbeddingGenerator()

# 执行搜索
results = embedding_generator.similarity_search('红色汽车', k=5)

# 处理结果
for doc, score in results:
    image_path = doc.metadata.get('image_path', '')
    print(f"图像: {image_path}, 相似度: {score}")
""")
    
    print("\n💡 搜索示例:")
    print("   - '红色汽车' - 搜索红色汽车图像")
    print("   - '美丽的花朵' - 搜索花朵图像")
    print("   - '可爱的猫咪' - 搜索猫咪图像")
    print("   - '建筑' - 搜索建筑图像")
    print("   - '食物' - 搜索食物图像")
    
    print("\n⚠️  注意事项:")
    print("   1. 确保 ChromaDB 服务正在运行")
    print("   2. 确保已经完成图像数据处理和向量化")
    print("   3. 搜索关键词越具体，结果越准确")
    print("   4. 支持中文和英文搜索")

def check_prerequisites():
    """检查运行前提条件"""
    
    print("\n🔍 检查运行前提条件:")
    
    # 检查 ChromaDB 服务
    import requests
    try:
        response = requests.get("http://localhost:8000/api/v2/heartbeat", timeout=5)
        if response.status_code == 200:
            print("✅ ChromaDB 服务正在运行")
        else:
            print("❌ ChromaDB 服务未响应")
            return False
    except:
        print("❌ ChromaDB 服务未启动")
        print("   请运行: chroma run --host localhost --port 8000")
        return False
    
    # 检查数据目录
    data_dir = Path("data/input")
    if data_dir.exists():
        image_count = sum(1 for f in data_dir.rglob("*.jpg") if f.is_file())
        print(f"✅ 找到 {image_count} 张图像")
    else:
        print("❌ 数据目录不存在")
        return False
    
    # 检查输出目录
    output_dir = Path("data/output")
    if output_dir.exists():
        print("✅ 输出目录存在")
    else:
        print("❌ 输出目录不存在")
        return False
    
    return True

def main():
    """主函数"""
    print("🚀 文字查询图片功能演示")
    print("=" * 60)
    
    # 检查前提条件
    if not check_prerequisites():
        print("\n❌ 前提条件不满足，请先完成设置")
        return
    
    # 显示使用方法
    demo_search_usage()
    
    print("\n🎉 演示完成！")
    print("现在您可以开始使用文字查询图片功能了！")

if __name__ == "__main__":
    main() 